package easy.RobotReturntoOrigin;

import org.junit.Test;

/*
机器人从位置（00）开始，在2D平面上开始。 给定一系列动作，判断该机器人在完成动作后是否在（00）结束。

移动序列由字符串表示，字符move i表示其第i个移动。 有效移动是R（右），L（左），U（上）和D（下）。 如果机器人在完成所有移动后返回原点，则返回true。 否则，返回false。
注意：机器人“面对”的方式无关紧要。  “R”将始终使机器人向右移动一次，“L”将始终向左移动等。此外，假设每次移动机器人的移动幅度相同。
Example 1:
Input: "UD"
Output: true
说明：机器人向上移动一次，然后向下移动一次。 所有动作都具有相同的幅度，因此它最终位于它开始的原点。 因此，我们回归真实。

Example 2:
Input: "LL"
Output: false
说明：机器人向左移动两次。 它最终在原点的左边有两个“移动”。 我们返回false，因为它不是在它移动结束时的原点。
 */
public class Solution {
    public boolean judgeCircle(String moves) {
        int straight=0 , level=0;
        char[] chars = moves.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            if (chars[i]=='L'){
                level-=1;
            }else if (chars[i]=='R'){
                level+=1;
            }else if (chars[i]=='U'){
                straight+=1;
            }else if (chars[i]=='D'){
                straight-=1;
            }else{
                throw new IllegalArgumentException("输入有误");
            }
        }
        return straight==0&&level==0;
    }
    @Test
    public void test1(){
        Solution solution =new Solution();
        boolean ll = solution.judgeCircle("LR");
        System.out.println(ll);
    }
}
